﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using Logging;

namespace QuanLyBanLe.Admin
{
    public partial class FormSetting : Form
    {
        private SettingService m_Service;
        public FormSetting()
        {
            InitializeComponent();
            m_Service = new SettingService();
        }

        private void FormSetting_Load(object sender, EventArgs e)
        {
            txtShopPrefix.Text = FormMain.s_Setting.ShopNamePrefix;
            txtShopName.Text = FormMain.s_Setting.ShopName;
            txtAddress.Text = FormMain.s_Setting.ShopAddress;
            txtPhoneNumber.Text = FormMain.s_Setting.ShopPhoneNumber;
            this.Text += FormMain.GetShopInfo();
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (ValidateData())
            {
                string oldAddress = FormMain.s_Setting.ShopAddress;
                string oldPhoneNumber = FormMain.s_Setting.ShopPhoneNumber;
                string oldShopName = FormMain.s_Setting.ShopName;
                string oldShopPrefix = FormMain.s_Setting.ShopNamePrefix;
                try
                {
                    FormMain.s_Setting.ShopAddress = txtAddress.Text;
                    FormMain.s_Setting.ShopPhoneNumber = txtPhoneNumber.Text;
                    FormMain.s_Setting.ShopName = txtShopName.Text;
                    FormMain.s_Setting.ShopNamePrefix = txtShopPrefix.Text;
                    m_Service.Update(FormMain.s_Setting);
                    MessageBox.Show("Đã lưu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Text += FormMain.GetShopInfo();
                }
                catch (Exception ex)
                {
                    // revert data
                    FormMain.s_Setting.ShopAddress = oldAddress;
                    FormMain.s_Setting.ShopPhoneNumber = oldPhoneNumber;
                    FormMain.s_Setting.ShopName = oldShopName;
                    FormMain.s_Setting.ShopNamePrefix = oldShopPrefix;
                    MyLogger.LogException("Lỗi xảy ra khi thay đổi thông tin cửa hàng: " + ex.Message, ex);
                    MessageBox.Show("Lưu không thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Dữ liệu bị sai", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private bool ValidateData()
        {
            if (String.IsNullOrEmpty(txtShopPrefix.Text))
            {
                errorProvider1.SetError(txtShopPrefix, "Nhập loại cửa hàng");
                return false;
            }
            else
            {
                errorProvider1.SetError(txtShopPrefix, "");
            }

            if (String.IsNullOrEmpty(txtShopName.Text))
            {
                errorProvider1.SetError(txtShopName, "Nhập tên cửa hàng");
                return false;
            }
            else
            {
                errorProvider1.SetError(txtShopName, "");
            }

            if (String.IsNullOrEmpty(txtAddress.Text))
            {
                errorProvider1.SetError(txtAddress, "Nhập địa chỉ");
                return false;
            }
            else
            {
                errorProvider1.SetError(txtAddress, "");
            }

            if (String.IsNullOrEmpty(txtPhoneNumber.Text))
            {
                errorProvider1.SetError(txtPhoneNumber, "Nhập số điện thoại");
                return false;
            }
            else
            {
                errorProvider1.SetError(txtPhoneNumber, "");
            }

            return true;
        }
    }
}
